Good illustration of exceptions hierarchy:
page: http://www.javalaunch.com/Exception_Handling_Java.html 
figure: http://www.javalaunch.com/images/Exception_Hierarchy.png


Scanner vs. BufferedReader from StackOverflow.com:
http://stackoverflow.com/questions/2231369/scanner-vs-bufferedreader

Difference between: Integer.parseInt(br.readLine()) and scanner.nextInt()
http://stackoverflow.com/questions/31747646/difference-between-bufferedreader-readline-and-scanner-nextint